Technological advances in computing systems have been directed toward increasing the commonality of data thus enabling sharing, compatibility and interoperability between machines. For example, frequently, a user may have data on one device and desire to share the data with a different device and/or application. Today, so long as the systems are pre-configured to accept specific data formats and types, computers can share data between applications and users.
However, these conventional systems are not extensible. In other words, if the correct schema is not available on the destination device, the data cannot be transferred. As well, in order to maintain free data exchange, a user cannot add or modify types at an origination location (e.g., server) without the same additions and/or modifications being installed at the destination location (e.g., client). To this end, the destination location (e.g., client) must be equipped (e.g., maintain necessary schema information) to accept incoming data from a disparate device and/or application.
Developments in computing systems have been directed to employing a platform that utilizes the benefits of database technology. Oftentimes, these developments incorporate these database-specific benefits into the file system. However, these systems share the same schema compatibility drawbacks described above. As such, today, in order to effectively transfer and share data, the data in the file system must conform to a predefined common schema(s). Of course, a schema can be defined as a declarative way of describing the form (e.g., structure) of the data.
In emerging file systems, objects can be stored in the database (e.g., file system) and, accordingly, can be described by an applicable schema. Data in these file systems is an instance of specific schemas and types; the types are defined in the schema which defines the shape (e.g., structure) of the data. If a new type is desired to be added to the system, e.g., a new set of objects or a new form of data the system can work with, the developer would need to create a schema and a type within it. Next, properties would be added to the type.
A number of scenarios exist in which data has to be saved to a file system store (or other database) for which the required schema(s)/type(s) are not already installed. This is known as the “store down-level” problem. In conventional systems, only system administrators and/or persons with specialized authorizations could install schema information.